//
//  BDGeneralModel.h
//  BadBoy
//
//  Created by wen on 2017/9/6.
//  Copyright © 2017年 com.8xiong. All rights reserved.
//

#import <Foundation/Foundation.h>

@class BDGeneralCell;

typedef NS_ENUM(NSUInteger, BDGeneralCellAccessoryType) {
    BDGeneralCellAccessoryTypeNone,
    BDGeneralCellAccessoryTypeDisclosureIndicator
};

typedef NS_ENUM(NSUInteger, BDGeneralCellKeyboardType) {
    BDGeneralCellKeyboardTypeDefault,
    BDGeneralCellKeyboardTypeNumberPad
};

typedef NS_OPTIONS(NSUInteger, BDGeneralCellMode) {
    BDGeneralCellModeDefault = 1,
    BDGeneralCellModeTextfield = 1 << 1,
    BDGeneralCellModeRightImage = 1 << 2,
    BDGeneralCellModeButton = 1 << 3,
    BDGeneralCellModeSwitch = 1 << 4,
    BDGeneralCellModeLabel = 1 << 5,
    BDGeneralCellModeCustomView = 1 << 6
};

typedef NS_ENUM(NSUInteger, BDGeneralCellImageType) {
    BDGeneralCellImageTypeImageName,
    BDGeneralCellImageTypeURL,
    BDGeneralCellImageTypeBundlePath
};

@interface BDGeneralModel : NSObject

@property (nonatomic, strong) NSString *identifier;
@property (nonatomic, strong) id image;
@property (nonatomic, strong) NSString *placeImage;
@property (nonatomic, strong) NSString *title;
@property (nonatomic, strong) NSString *subTitle;
@property (nonatomic, strong) NSString *textFieldText;
@property (nonatomic, strong) NSString *placeHolder;
@property (nonatomic, strong) NSString *laberString;
@property (nonatomic, strong) NSString *aimageString;
@property (nonatomic, assign) BDGeneralCellKeyboardType keyboardType;
@property (nonatomic, assign) BDGeneralCellAccessoryType accessoryType;
@property (nonatomic, assign) BDGeneralCellMode mode;
@property (nonatomic, assign) BDGeneralCellImageType imageType;
@property (nonatomic, assign) BOOL switchValue;
@property (nonatomic, assign) BOOL hasSeparator;
@property (nonatomic, strong) id extension;

- (BDGeneralModel *(^)(NSString *identifier))identifierEqual;
- (BDGeneralModel *(^)(id image))imageEqual;
- (BDGeneralModel *(^)(NSString *placeImage))placeImageEqual;
- (BDGeneralModel *(^)(NSString *title))titleEqual;
- (BDGeneralModel *(^)(NSString *laberString))laberStringEqual;
- (BDGeneralModel *(^)(NSString *subTitle))subTitleEqual;
- (BDGeneralModel *(^)(NSString *placeHolder))placeHolderEqual;
- (BDGeneralModel *(^)(NSString *aimage))aimageStringEqual;
- (BDGeneralModel *(^)(NSString *textFieldText))textFieldTextEqual;
- (BDGeneralModel *(^)(BDGeneralCellKeyboardType keyboardType))keyboardTypeEqual;
- (BDGeneralModel *(^)(BDGeneralCellAccessoryType accessoryType))accessoryTypeTypeEqual;
- (BDGeneralModel *(^)(BDGeneralCellMode mode))modeEqual;
- (BDGeneralModel *(^)(BDGeneralCellImageType imageType))imageTypeEqual;
- (BDGeneralModel *(^)(BOOL switchValue))switchValueEqual;
- (BDGeneralModel *(^)(BOOL hasSeparator))hasSeparatorEuqal;
- (BDGeneralModel *(^)(id extension))extensionEqual;
@end
